-- FieldsM
-- Create by chengb Dec/15/2014
-- 提供字段描述功能

module("FieldsM", package.seeall);

-- 所有的字段信息
fields = {};

-- 根据id存放字段信息
fieldsById = {};

-- 载入配置表
local _init = false;
local loadCsv = function()
    if _init then return end
    _init = true;

    -- 转换fields信表
    local fields_CSV = get_fields_CSV();
    for i = 1, #fields_CSV do
        fields[fields_CSV[i].field] = fields_CSV[i];

        fieldsById[fields_CSV[i].id] = fields_CSV[i].field;
    end

    fields_CSV = {};
end

-- 模块初始化
function init()
    loadCsv();
end

function getFieldById(id)
    return fieldsById[id];
end

-- 获取字段信息
function getFieldInfo(field)
    return fields[field];
end

-- 获取字段名称
function getFieldName(field)
    local info = fields[field];
        if not info then
            -- 取不到，原路返回
            return nil;
        end
    return info["name"];
end

-- 获取某一列
function query(field, path)
    local info = fields[field];
    if not info then
        return nil;
    end
    return info[path];
end
